/*
 * Robot11API.h
 *
 *  Created on: 17/11/2013
 *      Author: gonzalo
 */

#ifndef ROBOT11API_H_
#define ROBOT11API_H_

#include "../middleware/MiddlewareCommon.h"
#include "../middleware/CommunicationRobot11.h"
#include "../middleware/CommunicationRobot12.h"
#include "../middleware/CommunicationRobot5.h"
#include "../middleware/CommunicationCanastos.h"
#include "../middleware/CommunicationPrimerCinta.h"
#include "../middleware/CommunicationAGV.h"
#include <map>
#include "../logger/logger.h"
#include "AdminKeys.h"
#include "MapaPiezasProducto.h"

// Integracion con la Republica Separatista de Mariano
#include "../middleware/funcionesR11-R14.h"

class Robot11API {
public:
	Robot11API(AdminKeys adminKeys);
	Producto obtenerProducto();
	void procesarProducto(Producto prod);
	void avanzarProducto(Producto prod);
	virtual ~Robot11API();
private:
	void avanzarProductoDeCintaA(Producto prod);
	void avanzarProductoDeCintaB(Producto prod);

	middleware::CommunicationRobot11 comRobot11;
	middleware::CommunicationRobot12 comRobot12;
	middleware::CommunicationRobot5 comRobot5;
	middleware::CommunicationAGV comAgv;
	middleware::CommunicationCanastos comCanastos;
	middleware::CommunicationPrimerCinta comCinta;

	PedidoPiezas buildPedidoPiezas(TipoPieza);
};
#endif /* ROBOT11API_H_ */
